#pragma once
#ifndef _INPUTHANDLE_H_
#define _INPUTHANDLE_H_
#include <GLFW/glfw3.h>
#include "../Tool/MathUtil.h"
#include <iostream>
#include <memory>

#include "../Event/EventManager.h"
#include "../Event/Events.h"
#include "../Tool/Singleton.h"

class InputHandle : public Singleton<InputHandle>
{
public:
	void Init(GLFWwindow* window);
	void Update(float dTime);
	void ShowOrHideCursor(bool isShow) const;
	void SetCursorPos(double x, double y) const;
	glm::vec2 GetCursorPos() const;
private:
	static void processInput(GLFWwindow* window);
private:
	GLFWwindow* p_window;
};
typedef InputHandle TheInputHandle;
#endif // _INPUTHANDLE_H_
